//package cn.pconline.autoclub.util.ubb.node;
//
//import cn.pconline.autoclub.util.ubb.EscapeUtils;
//import cn.pconline.autoclub.util.ubb.Node;
//import cn.pconline.autoclub.utils.SystemConstant;
//
//import java.util.Map;
//import java.util.regex.Matcher;
//import java.util.regex.Pattern;
//
//import org.gelivable.web.EnvUtils;
//
///**
// *
// * @author xhchen
// */
//public class UrlNodeWap extends AbstractNode {
//
//    private Map<String, String> replaceMap;
//
//    public UrlNodeWap() {
//    }
//
//    private UrlNodeWap(String name, String attribute) {
//        super.name = name;
//        super.attribute = attribute;
//    }
//
//    public void setReplaceMap(Map<String, String> replaceMap) {
//        this.replaceMap = replaceMap;
//    }
//
//    @Override
//    public StringBuilder getText(java.util.LinkedList<Node> stack) {
//        StringBuilder sb = new StringBuilder();
//
//        sb.append("<a href=\"");
//        String url = replaceUrl(text.toString());
//
//        if (attribute != null) {
//            attribute = replaceUrl(attribute.trim());
//            EscapeUtils.appendAttribute(attribute, sb);
//        } else {
//            sb.append(url);
//        }
//
//        sb.append("\">").append(url).append("</a>");
//
//        return sb;
//    }
//
//    @Override
//    public void appendText(CharSequence text) {
//        if (attribute == null) {
//            EscapeUtils.appendAttribute(text, super.text);
//        } else {
//            EscapeUtils.appendHtml(text, super.text);
//        }
//    }
//
//    @Override
//    public Node copyWithoutText() {
//        UrlNodeWap result = new UrlNodeWap(name, attribute);
//        result.setReplaceMap(replaceMap);
//        return result;
//    }
//
//    @Override
//    public Node build(String name, String attribute) {
//        UrlNodeWap result = new UrlNodeWap(name, attribute);
//        result.setReplaceMap(replaceMap);
//        return result;
//    }
//
//    private String replaceUrl(String url) {
//
//        if (!SystemConstant.AUTO_APP_NAME.equals(EnvUtils.getEnv().getAppName())) {
//            return url;
//        }
//
//        if ((url.indexOf("http://price.pcauto.com.cn") != -1 || url.indexOf("http://bbs.pcauto.com.cn") != -1)
//                && replaceMap != null) {
//
//            for (Map.Entry<String, String> m : replaceMap.entrySet()) {
//                Pattern pattern = Pattern.compile(m.getKey());
//                Matcher matcher = pattern.matcher(url);
//                if (matcher.find()) {
//                    return m.getValue().replace("{id}", matcher.group(1));
//                }
//            }
//
//        }
//
//        //����ҳ(http://www.pcauto.com.cn/teach/272/2725620.html  http://m.pcauto.com.cn/x/272/2725620.html)
//        if (url.indexOf("http://www.pcauto.com.cn/") != -1) {
//            Pattern pattern = Pattern.compile("http://www.pcauto.com.cn/.+?/(.+).html");
//            Matcher m = pattern.matcher(url);
//            if (m.find()) {
//                return "http://m.pcauto.com.cn/x/{id}.html".replace("{id}", m.group(1));
//            }
//        }
//
//        return url;
//    }
//}
